+2007-11-20 Matthias Clasen <mclasen@redhat.com>
+
+ * gtk/gtkimage.c (animation_timeout): Avoid drawing one too many
+ frames. (#107398, Owen Taylor, Miguel Gomez)
+
Tue Nov 20 15:19:42 2007 +0100 Tim Janik
Moved Gdk test functions from Gtk+ to Gdk test utils.
animation_timeout (gpointer data)
{
GtkImage *image;
+ int delay;
image = GTK_IMAGE (data);
gdk_pixbuf_animation_iter_advance (image->data.anim.iter, NULL);
- if (gdk_pixbuf_animation_iter_get_delay_time (image->data.anim.iter) >= 0)
- image->data.anim.frame_timeout =
- gdk_threads_add_timeout (gdk_pixbuf_animation_iter_get_delay_time (image->data.anim.iter),
- animation_timeout,
- image);
+ delay = gdk_pixbuf_animation_iter_get_delay_time (image->data.anim.iter);
+ if (delay >= 0)
+ {
+ image->data.anim.frame_timeout =
+ gdk_threads_add_timeout (delay, animation_timeout, image);
- gtk_widget_queue_draw (GTK_WIDGET (image));
+ gtk_widget_queue_draw (GTK_WIDGET (image));
- if (GTK_WIDGET_DRAWABLE (image))
- gdk_window_process_updates (GTK_WIDGET (image)->window, TRUE);
+ if (GTK_WIDGET_DRAWABLE (image))
+ gdk_window_process_updates (GTK_WIDGET (image)->window, TRUE);
+ }
return FALSE;
}